The present invention relates generally to systems for detecting, counting and measuring signal events produced by preamplifiers connected to radiation detectors used to detect x-rays, gamma-rays, nuclear particles, and the like. More particularly, it relates to increasing the accuracy with which the energy spectra of these events can be obtained under conditions of varying input counting rate by increasing the accuracy of determining the number of events that are lost due to pileup in the spectrometer""s energy filter. The specific embodiment described relates to a spectrometer used with a solid state detector, but the same techniques apply to radiation spectrometers operating with other detectors as well, since the issues relating to pileup are essentially independent of detector type.
A Synopsis of Current Spectrometer Art
FIG. 1 is a schematic diagram of a prior art radiation spectroscopy system employed with a solid state detector diode 7. Similar systems are used for measuring x-ray, gamma-ray and alpha and beta particle radiations, differing primarily in the physical form of the detector diode 7, which might also be replaced with a proportional counter or other detector. All of these detectors 7 share the common property that, when biased by a voltage supply 8, they produce an output current pulse when detecting an absorption event and the total charge QE in this pulse is approximately proportional to the energy E of the absorbed ray or particle. This current flows into a preamplifier 10, where it is integrated onto feedback capacitor 13 by amplifier 12, whose output is then a step of amplitude Ae=QE/Cf, where Cf is the capacitance of feedback capacitor 13. As a matter of nomenclature, pulses produced by the preamplifier in response to radiation absorption events and subsequently processed by the spectroscopy amplifier will often also be referred to as xe2x80x9ccountsxe2x80x9d since the goal of spectroscopic processing is to place them finally as counts in an output spectrum. In common parlance, the two terms are used nearly interchangeably except when the specific nature of one or the other needs to be emphasized.
A spectroscopy amplifier 15 is then used to measure AE. Within modern spectroscopy amplifiers 15 the output 14 of preamplifier 10 is commonly sent to both a xe2x80x9cslowxe2x80x9d energy filter circuit 17, which produces a low noise, shaped output pulse on line 19 whose peak height is proportional to AE, and to a pileup inspection circuit 18, which inspects for the presence of signal steps (events) and signals the filter peak capture circuit 20 via signal line 22 to capture the amplitudes of shaped pulses from the energy filter circuit 17 which are sufficiently separated in time so that they do not interfere with each other""s amplitudes (i.e., do not xe2x80x9cpile upxe2x80x9d). The inspection circuit 18 also determines when events are sufficiently separated so that the output of the energy filter circuit has returned to its DC value and signals the baseline capture circuit 24 using signal line 25 to capture these values so that they may be subtracted from captured peak values by the subtraction circuit 28. These differences are then passed to a multichannel analyzer (MCA) or digital signal processor (DSP) 29, for binning to form a spectral representation (spectrum) of the energy values present in the incident radiation.
Details of the pileup inspection circuit 18 are shown in FIG. 2. This circuit typically (see, for example, U.S. Pat. No. 5,873,054, issued to W. K. Warburton and Z. Zhou [WARBURTON 1999B], for a digital implementation) consists of a xe2x80x9cfastxe2x80x9d filter circuit 30, whose filter time constant is ideally an order of magnitude or more shorter than that of the energy filter circuit 17. The fast filter""s output 31 connects to a threshold comparator 32, whose output 35 connects to a block of timing and logic circuitry 36. The comparator compares the output 31 of the fast filter 30 to a threshold level T 37 and outputs a logic level 1 to timing and logic block 36 whenever the former exceeds the latter. The timing and logic block then uses this information to determine when valid energy filter peaks and baselines may be captured.
Pileup
FIG. 3 shows the origin of counting losses in radiation spectrometers of the type described above. Trace 40 represents the voltage output 14 from the preamplifier 10, with the steps A-E occurring in response to five radiation events. Trace 42 represents the output 31 of fast filter 30, which produces a shaped pulse (e.g., 44 ) in response to an input event pulse (e.g., A). Trace 46 shows the output 35 of the comparator, which is unity whenever the fast filter output 31 exceeds threshold T 37. Trace 48 shows the ideal output (i.e., impulse function) of the energy filter 17 for each input event pulse. In the example shown, which is typical for a digital spectrometer, this impulse function is a trapezoidal voltage signal having a peaking time tp and a gap time tg. Since the energy filter is a linear device, its output, trace 50 is the sum of the impulse functions generated for the individual steps. For the case of an event pulse (e.g., A) which is well isolated from its neighbors in time, the energy filter output is identical to the impulse function and its peak amplitude VA, which is proportional to the energy of the event, can be reliably captured at a time tc after the comparator output 46 goes high. If, however, the step pulses are too close together, as is the case for steps B and C, their impulse functions xe2x80x9cpile upxe2x80x9d on each other 52, distorting the peaks of both so that neither VB nor VC can be recovered. In the present example, this occurs when they are closer together than the sum of the times tp and tg. The job of the timing and logic block 36, therefore, is to measure the time between consecutive pulses and not enable the peak capture circuit 20 for any pulse that piles up with either its preceding or following nearest neighbor in time. Most modern spectrometer designs implement this function, with the result that these pulses are not placed in the output spectrum and are thereby xe2x80x9clostxe2x80x9d to pileup. This situation is accepted as the lesser of two evils since, if the distorted pulse amplitude were captured and included in the spectrum it would be placed at an incorrect energy location corresponding to the energy of neither of its component pulses and, in addition, the number of counts in the spectrum would still be in error by one count.
The net result is that, for a given input count rate ICR, the rate OCR at which counts are placed into the spectrum is given by the well known deadtime formula:
OCR=ICR exp(xe2x88x92ICRxcfx84d)xe2x80x83xe2x80x83(1)
where xcfx84d is the spectrometer""s deadtime. In the digital spectrometer case being described, xcfx84d is approximately equal to 2(tp+tg). The maximum OCR occurs at ICRmax=xcfx84dxe2x88x921 and is given by OCRmax=ICRmax/e=(excfx84d)xe2x88x921, at which point (1xe2x88x92exe2x88x921)=63% of all counts are lost to pileup. At higher ICR values even more counts are lost. The reference books by Jenkins et al. and Knoll provide further information on the subject of deadtime [JENKINS 1981, KNOLL 1989].
At very high data rates, the more difficult case represented by steps D and E in trace 40 also begins to occur frequently. These pulses are sufficiently close together that the fast filter output 42 does not fall below the threshold T 37 between them. Their impulse functions nearly superimpose and the energy filter output 54 looks nearly identical to the output from a valid, well isolated single pulse. This xe2x80x9cfast channel pileupxe2x80x9d may or may not be detected, depending upon the time separation between the two events and the sophistication of the spectrometer. One approach to minimizing fast channel pileup events in the output spectrum (see WARBURTON 1999B) is to compare the time tf 56 that the fast channel spends above threshold to the value for a well isolated event and to also exclude from the spectrum those pulses that are excessively long.
The number of counts lost to fast pileup can readily become large compared to estimated counting statistics errors. For example, for a fast channel deadtime of 0.5 xcexcs, a common pulse-pair resolution, at 100 kcps ICR, almost 5% of all counts are lost to fast pileup, whereas only 10,000 counts need be collected in an MCA channel to obtain 1% statistical accuracy. Since the same loss rate affects the entire spectrum, this does not affect measurements relying on the relative amplitudes of the spectral peaks. It does, however, directly affect any attempts at absolute activity measurement.
Correcting for Pileup Losses
For many qualitative measurements, an undistorted spectrum is all that is required. In quantitative measurements, however, both an accurate spectrum and an accurate ICR measurement are required. Various methods have been developed to treat this problem when the ICR is constant during the course of the measurement, and these are well covered by Jenkins et al. [JENKINS 1981]. The methods include: 1) extending the measurement""s livetime by the use of live-time clocks; 2) adding a test pulser of known rate to the input signal; or 3) extracting an ICR measurement from the fast filter and then producing a deadtime corrected spectrum by scaling the uncorrected output spectrum by the ratio of ICR/OCR. [XIA 1997] In this latter, non-livetime-extending method, the event pulses detected in the fast filter output 31 by the threshold comparator circuit 32 are counted while the spectrum is collected. At the end of the collection time t the number of counts Ns in the spectrum is t*OCR, while the number of pulses Nf counted from the fast filter output is a good measure of t*ICR, excluding fast channel pileup. If the values in the uncorrected output spectrum are then scaled by the ratio  less than C greater than =Nf/Ns, the corrected output spectrum will contain the correct number of counts t*ICR. The ratio  less than C greater than  is then a measure over the entire counting period of the average number of input counts per captured, un-piled-up output count. If the fast channel deadtime xcfx84df is measured,  less than C greater than  can also be corrected for fast channel pileup losses by correcting ICR appropriately.
For the purposes of fitting and analyzing the spectra, it is also useful to be able to estimate the standard deviations of the counts recorded in their bins. In the case of livetime-extending counting methods, the standard deviation of the counts in any MCA bin is just the square root of the number of counts in that bin. In the non-livetime-extending methods,  less than C greater than =Nf/Ns scaling method, the standard deviation "sgr"ci of the counts Nci in bin i of the corrected spectrum is given by
"sgr"ci= less than C greater than "sgr"ui,xe2x80x83xe2x80x83(2a)
where
 less than C greater than =(Nf/Ns)=Nci/Nui, and "sgr"ui=sqrt(Nui)xe2x80x83xe2x80x83(2b)
so that
"sgr"ci=(Nci/Nui)sqrt(Nui)=Nci/sqrt(Nui),xe2x80x83xe2x80x83(2c)
where the standard deviation "sgr"ui in bin i of the uncorrected spectrum equals the square root of Nui, the counts in bin i of the uncorrected spectrum. We are able to equate Nci/Nui with Nf/Ns because the same scaling factor is used for all bins in the spectra. In general, the counting statistics in the non-livetime-extending case are not as good as in the livetime-extending methods because the overall counting times are shorter by the ratio OCR/ICR. If equal real counting times are employed, the two methods produce identical counting statistics.
The Time-Varying Spectrum Problem
Many significant problems, however, involve counting under situations where the ICR varies significantly, and often rapidly, in time. Examples include scanning x-ray mapping, neutron activation analysis, and effluent monitoring where the occasional xe2x80x9chot particlexe2x80x9d may pass by the monitoring station. In these situations, it is desirable, although difficult, to recover accurate estimates of both the instantaneous ICR and the measurements"" statistical uncertainties for use in analytical computations.
All of the above deadtime correction methods are based on the assumption that ICR is constant in time. When this assumption breaks down, so do the methods. This is easily shown by a simple numerical example. Suppose that a 10 second live counting time t is requested and that, unknown to the detector operator, during the first second a xe2x80x9chotxe2x80x9d source A of ICRA is near the detector so that it experiences 90% dead time. After 1 second this source is replaced by a xe2x80x9ccoolxe2x80x9d source B of ICRB that only produces 10% deadtime in the detector. During the first 1 second of real time only 0.1 seconds of livetime are recorded, while 9.9 seconds of livetime are recorded during the next 11 seconds. Thus the counter counts for 12 seconds to achieve 10 seconds of livetime. In the collected composite spectrum, the ratio of the A spectrum counts to the B spectrum counts is 0.1 ICRA to 9.9 ICRB, since all the livetime extension occurred while the cool source was present. This represents a gross distortion of the fact that, during the measurement, the detector was actually exposed to 1*ICRA plus 11*ICRB counts.
From this example, it is clear that, if count rates are time varying, then corrections for lost counts must be made in real time if they are to accurately report the counts to which the detector is exposed. As the example shows, this becomes critically important when the features of the spectrum are evolving rapidly in time.
Jenkins et al. report only a single method, due to Harms [HARMS 1967], that has this feature. In the Harms method, the output of the threshold comparator 32 is taken as the true ICR and fed into an ICR scaler. Each time the pileup inspector 18 detects a good peak, so that the output of the filter peak capture circuit 20 is sent to the MCA 29 for binning, the number in the ICR scaler is placed in that bin instead and the ICR scaler zeroed. Thus all detected ICR counts are placed into the spectrum and, on average, all spectral features are correctly recovered. While the variance of the number of counts placed into the whole spectrum is correctly represented by the number of counts in the spectrum, Harms did not show, and Jenkins doubts, that the variance of the number of counts in any MCA bin is correctly given by the number of counts in that bin. That is, the recovered spectrum in the MCA cannot be effectively used in an analysis program because the statistical accuracy of the counts in each of its bins is unknown (in contrast to the usual spectrum, where the variance of the counts in a bin is equal to that number of counts).
Since Jenkins"" review, Westphal has presented a method (see U.S. Pat. No. 4,476,384, issued to G. P. Westphal [WESTPHAL 1984]), for a real time method for correcting for pileup losses. Westphal works with the output of the energy filter, comparing it to a threshold in a manner similar to livetime inspectors. For each pulse detected he generates a logic signal that is HI for both the time above threshold plus an extension to accommodate leading edge pileup. Then, over a fixed interval, he counts the number of cycles of a timing clock that occur while his logic signal is LO and compares this number to the total number of clock cycles during the same interval. The ratio of total cycles to counted cycles is a measure of the ratio of real time to livetime and this ratio, as a xe2x80x9cnumber of counts,xe2x80x9d is added each time a good pulse is placed into an MCA channel. The test interval employed can be quite short, in the millisecond regime, so that this approach is fully capable of handling rapid spectral evolution of the type seen in neutron activation analysis, for example. This approach has two weaknesses: first that the precision of the measurement is limited by the clock frequency, and, second and more significantly, that, as in the Harms method, there is no estimate produced of the statistical significance of the numbers recorded in the final MCA spectrum.
Recently, Bingham et al. (see U.S. Pat. No. 6,327,549, issued to R. D. Bingham et al. [BINGHAM 2000]) presented a method that both makes corrections in real time and also produces variance estimates for the numbers in the recorded MCA spectrum. This method uses an accurate Gedcke-Hale livetime clock to measure the ratio r of realtime to livetime over short time intervals. Then, each time a good pulse is detected, r is added to a corrected MCA spectrum at the pulse""s energy value. In addition, a xe2x80x9cvariance spectrumxe2x80x9d is also generated by adding the value r2 into a second spectrum at the same location. The authors present a mathematical argument to show that, when data collection is complete, the variance of the counts in each channel in the r corrected spectrum is given by the number of counts collected in the same channel in the r2 variance spectrum. The advantages claimed for this method are that no manual setup steps or calibrations are required, that variances on the counts are produced, and that the corrections are reasonably accurate. Limitations include the known accuracy limitations of the Gedcke-Hale livetime clock [Jenkins 1981], the requirement for the r2 calculations, which may limit throughput at very high data rates, and, from the authors"" published data, the inability of the system to accurately recover the counts from a fixed intensity source in the presence of a rate adjusting source at 80-90% dead time [UPP 2000 ].
The present invention extends the method of Harms in a manner that not only produces effectively loss-free output spectra but also generates the statistical uncertainty of the values in the deadtime-corrected output spectrum without additional computation. By further correcting for pileup losses in the fast event-detection filter circuit, it becomes possible to achieve very high accuracy, even at deadtimes exceeding 90%.
In brief, the approach entails producing from time to time an estimate  less than C greater than  of the average ratio of the number of input pulses detected in the fast channel per non-piled-up xe2x80x9cgoodxe2x80x9d pulse whose captured energy value is to be binned in the output spectrum, and, for each such non-piled-up pulse, adding the value  less than C greater than  into the output spectrum in the bin dictated by the pulse""s captured energy value, thereby producing an output spectrum corrected for pileup losses. We also preferably save an uncorrected spectrum that is formed in the present method by adding 1 to the same bin in the uncorrected spectrum as the bin to which  less than C greater than  is added in the corrected spectrum. This is just the spectrum that is traditionally saved in time-invariant measurements. By the use of Monte Carlo modeling we have determined that, when  less than C greater than  is produced in accordance with the invention, standard deviations of counts in any bin in the corrected spectrum can be accurately estimated by scaling the standard deviation of the counts in the same bin in the uncorrected spectrum by the ratio of their counts. That is, the standard deviation "sgr"ci in the counts Nci in the ith bin of the corrected spectrum is given by
"sgr"ci=sqrt(Nui)(Nci/Nui)=Nci/sqrt(Nui)xe2x80x83xe2x80x83(3)
where Nui is the number of counts in the ith bin of the uncorrected spectrum. Thus, provided that  less than C greater than  is produced according to the methods we disclose, we can estimate the standard deviations "sgr"ci using exactly the same prior art method already used in the case of non-livetime extending spectroscopy per Eqns. 2a-2c.
While the use of the uncorrected spectrum to estimate the standard deviations in the corrected spectrum is, per se, prior art, an important difference must be recognized. The inventive distinction between the present method and the prior art non-livetime-extended method lies in the method by which the corrected spectrum is collected. In the case of static ICRs, which is the provenance of the non-livetime-extended method,  less than C greater than  is a constant which can be determined following data collection (i.e., as the ratio  less than C greater than =Nf/Ns=ICR/OCR). The present invention, however, determines  less than C greater than  dynamically as the counting proceeds, and is able to deal with cases where ICR, and therefore  less than C greater than , may vary as a function of time. Once a spectrum has been acquired, however, then the same method, represented by Eqns. 2a-2c, can be used in both cases to accurately estimate the standard deviations of the counts in its channels. Viewed another way, in the non-livetime-extending method,  less than C greater than  is computed over the entire counting time and the entire collected spectrum scaled once, at the end. In the present case, we disclose methods by which  less than C greater than  may be computed in real time and the corrected spectrum xe2x80x9cscaledxe2x80x9d on a count-by-count basis in such a way that Eqns. 2a-2c remain true. This achievement is nontrivial and earlier methods (e.g., Harms) were unable to attain it.
In particular, our modeling shows that, when  less than C greater than  is not optimally formed, "sgr"ci will be larger than the value given by Eqns. 2a-2c, which therefore represent the ideal result, namely the minimum standard deviation that can be achieved. That is, the minimum statistical fluctuations that can be obtained are those of the uncorrected spectrum of un-piled-up pulses, which constitute the measurement""s independent data. The best that we can do, therefore, is to scale these counts into the corrected spectrum without losing any additional information. We show several different methods by which optimal averages  less than C greater than  can be formed in practice. Even better accuracy may be obtained at high input count rates (ICRs), where the possibility of pileup in the fast filter becomes significant, by generating estimates of counts lost to fast channel pileup, and adding such estimates to  less than C greater than .
The present invention does not require a livetime measurement or clock of any kind, which therefore distinguishes it from the methods of Westphal and Bingham. Two innovations distinguish the method from that of Harms: first, the requirement that a correctly formed average number of input counts  less than C greater than  be added to the MCA each time a good count is found, rather than just the actual number of input counts preceding a good count; and, second, that when  less than C greater than  is properly formed, the standard deviations in the uncorrected MCA spectrum can be scaled to compute accurate values of the standard deviations in the corrected MCA spectrum via Eqn. 3, using the same scaling equations (Eqns. 2) previously used in static ICR measurements with non-extending livetime measurements.
Our several methods for estimating  less than C greater than  differ in the details of how we form the average and what resources are required to implement it. A conceptually simple approach, based on the definition of  less than C greater than , would be to count, for a sequence of M non-piled-up pulses, the number Ni of pulses detected in the fast channel for each member i of the sequence; and form  less than C greater than  as the average of the M values of Ni.
In a preferred first xe2x80x9crunningxe2x80x9d averaging method we implement this in a computationally efficient way by counting the number Ni of input counts arriving before each good count, including the good count, and include it in a running sum of M input count measurements wherein we compute the newest estimate  less than C greater than i from the preceding estimate  less than C greater than ixe2x88x921 by the equation  less than C greater than i= less than C greater than ixe2x88x921+(Nixe2x88x92Nixe2x88x92M)/M. Requiring M to be a power of 2 (i.e., M=2L) allows us to perform the required division merely by shifting (Nixe2x88x92Nixe2x88x92M) by L bits. In this method  less than C greater than  is not an integer and the L bits of precision must be retained in the corrected MCA spectrum. A single count is also added to the same bin of the uncorrected MCA spectrum. The accuracy with which standard deviations in the corrected spectrum can be estimated from the uncorrected spectrum depends upon the value of L. Values of L equal to 4 or more are generally adequate, with L equal to 5 giving a quite precise result. Larger values of L take longer to adjust to changes in input count rate and therefore are less satisfactory when the best time domain performance is desired. For example, at 200 kcps ICR and 90% dead time, the L=4 average takes 0.8 ms to fully adjust to a change in ICR, the L=5 average takes 1.6 ms, both of which are very fast. The same method can be used with M not equal an integer power of 2, but the divisions are not so simply implemented.
In a second xe2x80x9cbucketxe2x80x9d averaging method, which only requires storing integer MCA values, a counter is incremented by 1 every time an input count is detected and decremented by  less than C greater than  each time a good count is detected and the value  less than C greater than  is stored in the corrected MCA spectrum at the location given by the energy of the good count. A single count is also placed into the uncorrected spectrum as in the previous cases. Every M good counts, the residual value in the counter is divided by M and  less than C greater than  is adjusted by the quotient, rounded to the nearest integer value, which may be negative. All input counts are thereby distributed into the corrected spectrum. The same comments regarding the value of M, and whether or not it can be expressed as an integer power of 2, apply as in the first averaging method.
In a third xe2x80x9ccircularxe2x80x9d averaging method, which also only stores integer MCA values, a circular memory of length M is addressed by two pointers, a fast pulse pointer PF and a good pulse pointer PG. Each time an input count is detected, the memory value at PF is incremented by one and PF is incremented by one, modulo M. Each time a good output count is detected, the memory value at PG is added to the corrected MCA spectrum in the bin given by the energy of the good count, the memory value at PG is zeroed, and PG is incremented by one, modulo M. And, again, a single count is also added into the same bin of the uncorrected MCA spectrum.
Through the use of Monte Carlo modeling methods we compared the performance of these methods to each other and to the Harms method. All methods were found to produce unbiased corrected MCA spectra. The standard deviations in these corrected spectra, however, differed markedly between the methods. The Harms method was worst, producing standard deviations that were 40% larger than those from Eqns. 2a-2c at large deadtimes. For M equal to 32, the circular averaging method""s standard deviations exceeded Eqns. 2a-2c by a maximum of 10%, with an average of 5%, a significant improvement over Harms"" method. For M equal to 16 and 32 (L equal to 4 and 5), the bucket averaging method""s standard deviations exceeded Eqns. 2a-2c by 4.0% and 2.6% respectively, with nearly flat distributions as a function of ICR. The running average method produced the best performance. For M equal to 16 and 32, its standard deviations exceeded Eqn. 2 by only 1.7% and 0.4% respectively, with very flat distributions as a function of ICR. These methods, therefore, are capable of simultaneously producing accurate spectra in the presence of rapidly varying ICRs and achieving the same minimal standard deviations in these spectra as can be attained in the case of static ICRs. In particular, the accuracies of their standard deviation estimates improve over the method of Harms by between one and two orders of magnitude.
All of these methods only distribute counts detected in the fast channel into the corrected MCA spectrum. They are therefore incapable of properly correcting the MCA spectrum for counts lost to pileup in the fast channel. We have therefore devised an enhancement to our methods which accurately corrects for these losses. In this enhancement, we measure the output count rate OCRfm of detected pulses in the fast channel filter pileup inspection circuit and use it, from time to time, to estimate the probability P that any individual detected pulse suffers from pileup in the fast channel. We then use P to correct our estimates of  less than C greater than  for counts lost to pileup in the fast channel. To aid in this process we have developed a universal curve relating P to the measurable quantity xcfx84dfxc3x97OCRfm, where xcfx84df is the fast channel dead time and OCRfm is the measured fast channel output count rate. By generating a table of values of P versus xcfx84dfxc3x97OCRfm, the process of generating P for a measured OCRfm can be reduced to a table lookup, possibly with interpolation.
When we are dealing with non-integer values of  less than C greater than , as in the running average method, the correction to  less than C greater than  is made by simply replacing the addition of 1 by the addition of 1+P to the fast pulse counter each time an additional fast pulse is detected, and otherwise carry out the method as before. If we wish to restrict our method to integer arithmetic, as we will for the circular average method and may wish to for the bucket average method, we cannot simply add in the non-integer value of P. Instead, each time a fast pulse is detected we generate a random number, using a generator that produces uniform probabilities between 0 and 1, and compare it to P. If the random number is smaller than P, a second count is added to the fast channel averaging procedure. Either procedure results in a method that precisely adjusts the corrected MCA spectrum for all counts lost to fast pileup and, further, can do so with standard deviations that are less than 1% larger than the minimum value represented by Eqn. 2. Since, for a specific value of xcfx84df, the values of P depend solely upon the value of OCRfm, they can be pre-computed and stored in a small lookup table where they can be accessed without the need for further computation. The enhanced method is therefore capable of producing spectra that are statistically accurate even at very high count rates which fluctuate on the millisecond time scale.
While our preferred implementations are digital, with the exception of the formation of the proper input count averages, digital processing techniques are not generally required by the invention, which could equally well be implemented using classical analog spectroscopy techniques in the various filtering and inspection steps. We discuss this approach briefly. Further, while we present our invention primarily in the context of radiation spectroscopy using solid state detectors, the underlying methods apply equally well to other spectroscopies, including nuclear and particle spectroscopies, which use the same fundamental filtering and pulse counting techniques.
A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings.